# 元组的学习
# 列表：可变对象，有序，元素可增删改查。元组：对象不可变，一维元素不允许增删改,只允许查询
# 为防止与函数格式产生歧义，最后一个元素后添加英文逗号

tu = (1, 5, 'a', [5, 7],)

# 获取单个元素
print(tu[-1])
# 切片获取多个元素子对象
print(tu[2:])

# 二维以上元素是被修改
tu[3][1] = 7
print(tu)

# 统计元素个数，只能统计一维的
print(tu.count(5))

# 元组的过滤，过滤小于4的所有元素
tuple1 = (2, 3, 4, 7, 1)

# filter()过滤返回迭代器对象，使用lambda表达式
num = filter(lambda x: x < 4, tuple1)


# 第二种函数方式
def computer(x):
    return x < 4


num1 = filter(computer, tuple1)
# 取数操作使用list()，[3, 2, 1]
print(list(num))
# 统计过滤的元素
print(len(list(num1)))
